package com.coolbi.security.dao;

import java.util.List;
import java.util.Map;

/**
 * Dao层接口功能的基本定义
 * 
 * @author MingliC
 *
 * @param <T> 所操作的Pojo对象<br/>用法如下：
 * <h3>public interface UserDao extends AbstractDao<User>{<br />
 *  //扩展的接口方法<br />
 * }</h3>
 */
public interface SimpleDao<T> extends BaseDao<T> {
	/**
	 * 根据参数查询
	 * @param parameter 参数
	 * @return
	 */
	List<T> find(Map<String, Object> parameter);
	/**
	 * 根据参数查询并分页
	 * @param parameter 参数
	 * @param offset 偏移量
	 * @param limit 最大返回条数限制
	 * @return
	 */
	List<T> find(Map<String, Object> parameter,int offset, int limit);
	/**
	 * 根据参数获得总记录数
	 * @param parameter 参数
	 * @return
	 */
	int count(Map<String, Object> parameter);
	/**
	 * 关键字搜索
	 * @param keyword
	 * @return
	 */
	List<T> search(String keyword,int offset,int limit);
	/**
	 * 获得关键字搜索的总记录数
	 * @param keyword
	 * @return
	 */
	int countByKeyword(String keyword);
	
}
